개발자 어떻게 공부 해야 할까

선배 개발자님들에 조언 정리와 나의 생각

Posted by Yungwang Ryu on 2018-12-26

작성 동기

개발자 어떻게 공부 해야 할까? 그 대답을 찾기위해 고민하고 스스롭 방법을 정립을 머릿속으로만 하였다.
“개발자 공부” 에 대한 선배 개발자님들에 영감을 얻고 내 나름데로 생각을 정리하고 방법을 정립하기 위해 작성해 본다.

먼저 영감을준 선배 개발자님들에 조언 정리

개발자의 평생 공부 | 임백준


보러가기

개발자는 어떻게 성장해야 할까? | 강대명


보러가기

내가 흥미 있는 주제 위주로 블로그 하기

나의 토이 프로젝트 공개하기

팀에서 사용하지 않는 기술이라면 그럼 나혼자 사용해 봄으로써 기술을 습득하면 된다.

실력

지금 얼마나 알고 있는지

얼마나 빨리 배우는지

지속적으로 학습하는지

실력보다 중요한것은?

커뮤니케이션

  • 함께 일하고 싶은 동료인가?
  • 정보 공유를 잘하고 나의 생산성을 향상시켜줄 수 있는 사람
  • 나중에 우리팀에 함께 일하고자 추천 할 수 있는 사람

위 질문에 Yes! 라고 주변에서 말할수 있는 상태라면 성실하고 잘하는 개발자이며 나아가 사람들과 잘 소통하고 끌어당기는 힘 개발 그이상에 힘이 있다고 생각한다.

오픈소스 개발자 이야기 20170701_오픈소스 개발자의 공부방법(강대명)


보러가기

절대적인 노력과 시간은 필요함

기반지식

강대명 개발자님은 새로운 것을 접할 때 쉬운책을 3~4권 정도 본다든지 어떤 기술을 습득할 때 이 기술이 왜 탄생했는지에 대한 탄생,역사 등을 접한다고 했다.
이것은 기반지식을 쌓는 행위라고 생각한다. 예전 부터 나도 기반지식에 대한 의미를 생각 했었는데 누군가의 이야기가 이해 되지 않는 경우는 2가지라고 했다.

  • 내용자체가 어려운 경우
  • 기반 지식(컨텍스트)이 부족한 경우

바로 2번째 경우에서 기반 지식은 곧 이해와 직결되는 사항이라 생각한다.
이해라는 전체적인 그림을 그리기 위해서 각 기반 지식들이 퍼즐 조각과도 같은 것이다.
따라서 새로운 개념을 습득할 때 기반지식이 없는 상태라면 아래와 같은 행위로 기반지식을 많이 쌓아두면 점점 익숙해져서 더 많이 깨닿고 습득 할 수 있을 거라 생각한다.

  • 쉬운 개념부터 0부터 100까지 빠르게 습득한다. (예) 기본 서적, 동영상, 블로그 활용)
  • 탄생, 역사에 대한 히스토리를 보며 탄생의도를 파악한다.
  • 제일 중요한건 내가 배우고 싶어하는 호기심과 관심이다.
  • 그 관심을 가지고 토이프로젝트를 하면 최고다.
  • 그 과정에서 알게되고 적용했을때 즐거움이 좋은 선순환을 만들 것이다.

공부 방법에 중요성

추가적인 지식습득 없이 특정 방법으로 14%의 수학 성적 향상
올바른 방법만 바꿔도 Input 되는 지식없이도 실력이 향상된다는 것이고 이는 프로그래밍에도 적용된다고 한다.
나 또한 같은 생각이며 항상 올바른 방법을 추가하며 공부해야 한다고 생각한다.

의식적인 연습

스타크래프트 럴커 피하기 연습

프로게이머는 럴커 피하기 연습을 할 때 촉수가 delay 되는 시간 촉수를 피하기 위해 마우스 포인터 위치를 파악하여 끊임없는 반복 연습을 하여 럴커를 피하게 된다.

의식적 연습이란 럴커를 피하기 위한 의식적 생각에 답으로 delay 시간과 마우스 포인트 위치를 파악하여 집중 노력을 했다는 것이다.
프로그래머가 어떠한 새로운 개념,기술,지식을 습득하기 위해선 내가 얻고자 하는 그 무언가를 전략적이고 의식적인 생각을 통해 끊임없이 노력, 제대로 된 노력, 정확 노력을 집중해서 하는 것이라고 생각한다.

관련된 내용에 추천 책

피드백

반드시 필요한 단계이다.
투입한 나의 코스트가 낭비되지 않으려면 최대한 빨리 피드백을 받아 나의 상태를 진단하여 무엇이 잘못된지를 파악하여 계획을 다시 잡을 수 있다.

제가 아는 모분은 아는 사람 볼때마다 코드 리뷰 부탁합니다.

정말 개발을 잘하고 싶어하는 의지가 보이는 개발자인거 같다.
나도 위와 같은 행동이 정말 필요하다 생각하는데 실천은 잘 안되는거 같다.
정말 빨리 배우고 습득하고 싶다면 반드시 필요한 행동이라 생각한다.

피드백 받는 방법은

  • 잘하는 선배 개발자에게 질문, 리뷰 요청
  • 웹상에서 질문
  • 오픈소스 개발 활동

교정

피드백을 통해 알게 된 내용을 바탕으로 실제 고쳐서 적용하는 것

그리고 다시 의식적인 연습

고쳐진 방법으로 다시 의식적인 연습

그래서 나는 어떻게??


의식적연습 -> 피드백 -> 교정 -> 의시적연습 반복

각 단계에 대한 충실하게 지속적인 실천을 한다.